// 32. 泛型方法：可以解决函数传入什么类型就返回什么类型的问题，不具体给函数的入参和出参指定数据类型
// 在调用时指定类型
// void main() {
//   T returnInfo<T>(T value) {
//     return value;
//   }
//
//   print(returnInfo<int>(1));
//   print(returnInfo<bool>(true));
// }


class Put {
  List list = <int>[];
  add(int value) {
    list.add(value);
  }
}

// 在被实例化时可以规定类型
class Put1<T> {
  List list  = <T>[];
  add(T value) {
    this.list.add(value);
  }
  List getList() {
    return this.list;
  }
}

//  泛型类
void main() {
  // 规定了类型就必须传入这个类型
  // List list = <String>[];
  // // 必须要穿字符串，不然会报错
  // list.add('1');
  // print(list);

  // Put list = new Put();
  // list.add(2);
  // print(list.list);

  Put1 put1 = new Put1<String>();
  put1.add('2');
  print(put1.getList());
}